# 使用 pip 安装sdk：pip install -U cos-python-sdk-v5
# -*- coding=utf-8
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import logging
import base64


# 上传图片
# 腾讯云文档提供 （地址:https://cloud.tencent.com/document/product/436/65820）
def putObject(data, imgName):
    # 正常情况日志级别使用INFO，需要定位时可以修改为DEBUG，此时SDK会打印和服务端的通信信息
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)

    secret_id = 'AKIDsvhbZI3hHmO4veM7sYDrOwrnprnxGgEp'  # 替换为用户的 SecretId，请登录访问管理控制台进行查看和管理，https://console.cloud.tencent.com/cam/capi
    secret_key = 'dJtIj5QqEZ4iEf7SgmqrofO2ZvGZoz66'  # 替换为用户的 SecretKey，请登录访问管理控制台进行查看和管理，https://console.cloud.tencent.com/cam/capi
    region = 'ap-chengdu'  # 替换为用户的 region，已创建桶归属的region可以在控制台查看，https://console.cloud.tencent.com/cos5/bucket
    # COS支持的所有region列表参见https://cloud.tencent.com/document/product/436/6224
    token = None  # 如果使用永久密钥不需要填入token，如果使用临时密钥需要填入，临时密钥生成和使用指引参见https://cloud.tencent.com/document/product/436/14048

    config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token)
    client = CosS3Client(config)
    # 传递的图片数据为Base64编码的字符串
    base64_image_data = data

    # 解码Base64编码的图片数据为二进制数据
    image_data = base64.b64decode(base64_image_data)
    # 上传文件流的数据（这里只上传图片）
    response = client.put_object(
        Bucket='taritari-1306000991',
        Body=image_data,
        Key=imgName,
        EnableMD5=False
    )
    # 打印图片地址
    print(response)